// 问卷相关常量

import type { CSSProperties } from "vue";

/**
 * 「您的身份是？」问题的分类名称
 * 为了避免用户在新建分类时重名，所以使用特殊字符来代表该分类
 */
export const identityQuestionCategoryName = '20070831';

/**
 * 空白问题模板
 */
export const blankQuestionTemplate: Question = {
  id: '0',
  title: '',
  type: 'inputTextarea',
  placeholder: '',
}

/** 编辑问卷弹窗的菜单列表 */
export const editQuestionnairePopupList: PopupMenuInfo = [
  { text: '删除', className: 'danger', actionType: 'deleteQuestionnaire', },
  { text: '取消', className: '', actionType: 'cancelEditQuestionnaire', }
]

/** 编辑问题弹窗的菜单列表 */
export const editQuestionPopupList: PopupMenuInfo = [
  { text: '编辑', className: '', actionType: 'editQuestion' },
  { text: '上移', className: '', actionType: 'moveUpQuestion' },
  { text: '下移', className: '', actionType: 'moveDownQuestion' },
  { text: '增加题目', className: '', actionType: 'addQuestion' },
  { text: '删除', className: 'danger', actionType: 'deleteQuestion', },
  { text: '取消', className: '', actionType: 'cancelEditQuestion', }
]

/** 问卷结束语 */
export const conclusionList = [
  '爱与幸福永恒，祝福你们美满一生！',
  '感谢你们的参与，祝福你们幸福永远！',
  '愿你们的婚姻幸福甜蜜，永远相伴相爱！',
  '有你们的祝福，婚礼更加完美！谢谢！',
  '感谢你们的陪伴，祝福你们永远相爱！',
  '祝福新婚生活充满爱和喜悦！',
  '愿你们的婚姻像美丽的花朵一样绽放！',
  '感谢你们的祝福，让我们的婚礼更加温馨！',
  '祝福你们婚后生活幸福美满，永远幸福快乐！',
  '感谢你们的祝福，祝福你们白头偕老！'
]


/** 不同模式下，页面结构的显示状态 */
export const showStatusMap: { [key: string]: QuestionnairePageShowStatus } = {
  /** 编辑模式 */
  edit: {
    backBtn: true,
    questionnaireMoreBtn: true,
    coverEditIcon: true,
    questionMoreBtn: true,
    addQuestionBtn: true,
    bottomBar: true,
    bottomBarPreviewBtn: true,
    submitBtn: false,
  },
  /** 预览模式 */
  preview: {
    backBtn: true,
    questionnaireMoreBtn: false,
    coverEditIcon: false,
    questionMoreBtn: false,
    addQuestionBtn: false,
    bottomBar: false,
    bottomBarPreviewBtn: false,
    submitBtn: true,
  },
  /** 填写模式 */
  fill: {
    backBtn: false,
    questionnaireMoreBtn: false,
    coverEditIcon: false,
    questionMoreBtn: false,
    addQuestionBtn: false,
    bottomBar: false,
    bottomBarPreviewBtn: false,
    submitBtn: true,
  },
  /** 填写人查看模式 */
  fillView: {
    backBtn: false,
    questionnaireMoreBtn: false,
    coverEditIcon: false,
    questionMoreBtn: false,
    addQuestionBtn: false,
    bottomBar: false,
    bottomBarPreviewBtn: false,
    submitBtn: true,
  },
  /** 查看已收到问卷模式 */
  received: {
    backBtn: true,
    questionnaireMoreBtn: false,
    coverEditIcon: false,
    questionMoreBtn: false,
    addQuestionBtn: false,
    bottomBar: true,
    bottomBarPreviewBtn: false,
    submitBtn: false,
  },
}

/** 不同模式下，问卷页面的各操作可用状态 */
export const enableStatusMap: { [key: string]: QuestionnairePageEnableStatus } = {
  /** 编辑模式 */
  edit: {
    editTitleAndDesc: true,
    editQuestion: true,
    inputAnswer: false,
  },
  /** 预览模式 */
  preview: {
    editTitleAndDesc: false,
    editQuestion: false,
    inputAnswer: true,
  },
  /** 填写模式 */
  fill: {
    editTitleAndDesc: false,
    editQuestion: false,
    inputAnswer: true,
  },
  /** 填写人查看模式 */
  fillView: {
    editTitleAndDesc: false,
    editQuestion: false,
    inputAnswer: false,
  },
  /** 查看已收到问卷模式 */
  received: {
    editTitleAndDesc: false,
    editQuestion: false,
    inputAnswer: true,
  },
}

/** 问卷列表分页每页数量 */
export const questionnaireListPageSize = 10

/** 初始化的问卷列表分页信息 */
export const initQuestionnaireListPagination: QuestionnaireListPagination = {
  currentPage: 0,
  totalPage: 1,
  pageSize: questionnaireListPageSize,
  totalResult: 0,
}

/**
 * 通过他人分享进入小程序的场景值
 */
export const shareScenes = [
  1007, // 单人聊天会话中的小程序消息卡片
  1008, // 群聊会话中的小程序消息卡片
  1011, // 扫描二维码
  1012, // 长按图片识别二维码
  1013, // 手机相册选取二维码
  1036, // App 分享消息卡片
  1044, // 带 shareTicket 的小程序消息卡片
  1047, // 扫描小程序码
  1048, // 长按图片识别小程序码
  1049, // 手机相册选取小程序码
  1073, // 客服消息列表下发的小程序消息卡片
  1074, // 公众号会话下发的小程序消息卡片
  1091, // 公众号文章商品卡片
  1202, // 企微客服号会话打开小程序卡片
]

/** 身份中英文对照 */
export const identityMap = [
  { zh: '新郎', en: 'bridegroom' },
  { zh: '新娘', en: 'bride' }
]

/** 问题上下移动的默认样式对象 */
export const DEFAULT_MOVE_STYLE = () => ({
  transition: 'scale 0.3s ease-in-out, opacity 0.3s ease-in-out',
  translate: '0 0'
})

